package main

import (
	"fmt"
)

//使用select监听两个channel，等两个channel的数据读取完了，在退出
func main() {
	intChan := make(chan int, 10)
	for i := 0; i < 10; i++ {
		intChan <- i
	}
	strChan := make(chan string, 5)
	for i := 0; i < 5; i++ {
		strChan <- fmt.Sprintf("hello%d", i)
	}

	//select监听两个管道
	//一般情况下，select配合for循环去监听多个管道，执行case
	for {
		select {
		case v := <-intChan:
			fmt.Println("从intChan读取数据", v)
		case v := <-strChan:
			fmt.Println("从strChan读取数据", v)
		default:
			fmt.Println("数据读取完成")
			return
		}
	}
}
